#define _CRT_SECURE_NO_WARNINGS 1
#include "Queue.h"
#include "Stack.h"

void TestQueue()
{
	Queue q;
	QueueInit(&q);
	QueuePush(&q, 1);
	QueuePush(&q, 2);
	QueuePush(&q, 3);
	QueuePush(&q, 4);
	QueuePush(&q, 5);
	printf("%d\n", QueueFront(&q));
	QueuePop(&q);
	QueuePop(&q);
	QueuePop(&q);
	printf("%d\n", QueueFront(&q));
	printf("%d\n", QueueBack(&q));
	printf("%d\n", QueueSize(&q));
	QueueDestroy(&q);
}

void TestStack()
{
	Stack s;
	StackInit(&s);
	StackPush(&s, 1);
	StackPush(&s, 2);
	printf("%d ", StackTop(&s));
	StackPop(&s);
	StackPush(&s, 3);
	StackPush(&s, 4);
	//while (s._top != 0)
	//{

	//	printf("%d ", StackTop(&s));
	//	StackPop(&s);
	//}
	printf("\n");
	printf("%d\n", StackSize(&s));
	printf("%d\n", StackEmpty(&s));
	StackDestroy(&s);
}

void main()
{
	//TestStack();
	TestQueue();
}

//
//bool isValid(char * s)
//{
//	Stack st;
//	StackInit(&st);
//	bool ret;
//	while (*s != '\0')
//	{
//		if (*s == '[' || *s == '(' || *s == '{')
//		{
//			StackPush(&st, *s);
//			s++;
//		}
//		else
//		{
//			if (StackEmpty(&st))
//			{
//				ret = false;
//				break;
//			}
//			char top = StackTop(&st);
//			if (*s == ']' && top != '[')
//			{
//				ret = false;
//				break;
//			}
//			if (*s == '}' && top != '{')
//			{
//				ret = false;
//				break;
//			}
//			if (*s == ')' && top != '(')
//			{
//				ret = false;
//				break;
//			}
//			StackPop(&st);
//			++s;
//		}
//	}
//	if (*s == '\0')
//		ret = StackEmpty(&st);
//	StackDestroy(&st);
//	return ret;
//}